#ifndef GUI_H
#define GUI_H
#include "AdminGUI.hpp"
#include "AdminLogin.hpp"
#include "LoginWindow.hpp"
#include "UserChatWindow.hpp"
#include <QDebug>
#include <QEvent>
#include <QFile>
#include <QGraphicsDropShadowEffect>
#include <QGraphicsOpacityEffect>
#include <QLabel>
#include <QMainWindow>
#include <QPaintEvent>
#include <QPainter>
#include <QPixmap>
#include <QPropertyAnimation>
#include <QPushButton>
#include <QSizePolicy>
#include <QSpacerItem>
#include <QTimer>
#include <QVBoxLayout>
#include <QWidget>

class initWindow : public QMainWindow {
  Q_OBJECT
public:
  explicit initWindow(QWidget *parent = nullptr);

protected:
  void paintEvent(QPaintEvent *event) override;
  bool eventFilter(QObject *watched, QEvent *event) override;

private:
  QPushButton *adminButton;
  QPushButton *userButton;
  QLabel *titleLabel;
  QLabel *subtitleLabel;
  AdminLogin *adminGUI; // 管理界面实例

  // 动画效果
  QPropertyAnimation *titleAnimation;
  QTimer *animationTimer;

private slots:
  void onUserButtonClicked();
  void onAdminButtonClicked();
};

#endif // GUI_H